/*
 * ietDiLib.h
 *
 *  Created on: 2025 08 01
 *      Author: 刘宏伟
 */

#ifndef SRC_IETDILIB_H_
#define SRC_IETDILIB_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "global.h"

/********************************************************/

struct DimParam
{
    int mode;       //0-none interrupt 1-interrupt
    int type;       //0-下降沿触发 1-上升沿触发 2-双沿触发
    int window;     //消抖窗口宽度, 为单位: 微秒
    int reserve1;   //备用
    int reserve2;   //备用
    int reserve3;   //备用
};

/* 定义回调函数类型 */
typedef void (*CallbackFunction)(int channel, int type, int data);

/********************************************************
                  DI控制接口定义
*********************************************************/
int DIMOpen(int moduleType);


/* 配置参数; 若使用中断模式, 须先注册回调函数 */
int DIMInit(int channel, struct DimParam dimParam);

int DIMRead(int channel, int *data);

int DIMReadAll(int *data);

int DIMClose();

int DIMGetDrvVer();

int DIMGetFpgaVer();

int DIMGetLibVer();

/* 注册回调函数 */
void registerCallback(int channel, CallbackFunction callback);

/********************************************************/

#ifdef __cplusplus
}
#endif
#endif /* SRC_IETDILIB_H_ */
